package com.twb.auth.service;

import com.twb.auth.entity.twbApiGroup.TwbApiGroup;
import com.twb.auth.entity.twbApiGroup.dto.SearchTwbApiGroupDto;
import com.twb.auth.entity.twbApiGroup.dto.SearchTwbApiGroupTreeDto;
import com.twb.auth.entity.twbApiGroup.vo.SaveTwbApiGroupVo;
import com.twb.auth.entity.twbApiGroup.vo.SearchTwbApiGroupTreeVo;
import com.twb.auth.entity.twbApiGroup.vo.SearchTwbApiGroupVo;
import com.twb.auth.entity.twbApiGroup.vo.UpdateTwbApiGroupByIdVo;
import com.twb.core.base.entity.TwbPageInfo;
import com.twb.core.base.service.IBaseService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/** 
 * @ClassName ITwbApiGroupService 
 * @Description API分组信息 service接口
 
 * @author DSY
 * @date 2021-05-13 14:35:38 
 */ 
public interface ITwbApiGroupService extends IBaseService<TwbApiGroup> {

	/**
	 * @Title  searchTwbApiGroup
	 * @Description 分页查询
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public TwbPageInfo<SearchTwbApiGroupDto> searchTwbApiGroup(SearchTwbApiGroupVo vo);
	
	/**
	 * @Title  searchTwbApiGroup
	 * @Description 查询集合
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public List<SearchTwbApiGroupDto> searchTwbApiGroupList(SearchTwbApiGroupVo vo);

	/**
	 * @Title  saveTwbApiGroup
	 * @Description 保存信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public Boolean saveTwbApiGroup(SaveTwbApiGroupVo vo);

	/**
	 * @Title  updateTwbApiGroupById
	 * @Description 更新信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public Boolean updateTwbApiGroupById(UpdateTwbApiGroupByIdVo vo);

	/**
	 * @Title  deleteTwbApiGroupById
	 * @Description 删除信息
	 * @param id
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public boolean deleteTwbApiGroupById(String id);
	/**
	 * @Title  deleteTwbApiGroupByIds
	 * @Description 批量删除信息
	 * @param ids
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public boolean deleteTwbApiGroupByIds(String ids);
	
	/**
	 * @Title  exportExcel
	 * @Description 导出excel
	 * @param exportExcelVo
	 * @param searchVo
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public void exportExcel(SearchTwbApiGroupVo vo, HttpServletResponse response) throws Exception;
	
	/**
	 * @Title  importExcel
	 * @Description 导入excel
	 * @param map
	 * @return
	 * @author DSY
	 * @date 2021-05-13 14:35:38
	 */
	public int importExcel(Map<String, String> map);

	/**
	 * @Title searchTwbApiGroupTree
	 * @Description api分组树结构查询
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2021年5月13日 下午5:03:55
	 */
	public List<SearchTwbApiGroupTreeDto> searchTwbApiGroupTree(SearchTwbApiGroupTreeVo vo);
	
	/**
	 * @Title refreshApis
	 * @Description 刷新Api
	 * @param projectId
	 * @param apiGroupPid
	 * @param packages
	 * @return
	 * @AuthorOriginally DSY
	 * @date 2022年8月20日 下午10:01:15
	 */
	public boolean refreshApis(String projectId,String type,String packagesOrClasses);
}
